package xyz.xtt.asset.service;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.tongtong.share.request.AssistantMessageRequest;

import xyz.xtt.equity.client.request.BlockAssetNoBenefitRequest;
import xyz.xtt.equity.client.request.SendAssetNoBenefitRequest;
import xyz.xtt.equity.client.request.SendDeliverResultRequest;
import xyz.xtt.equity.client.request.SendFreeBenefitPackageRequest;
import xyz.xtt.equity.client.request.UnBlockAssetNoBenefitRequest;
import xyz.xtt.exchange.request.CopyrightRequest;
import xyz.xtt.exchange.response.AssetAuditResponse;
import xyz.xtt.pay.client.response.BusinessOrderDto;
import xyz.xtt.pay.client.response.BusinessOrderResponse;
import xyz.xtt.pay.client.response.TblPayOrderDto;
import xyz.xtt.user.client.request.UserRegRequest;
import xyz.xtt.user.client.response.UserInfoResponse;
import xyz.xtt.user.client.response.UserRegResponse;

/**
 * 内部服务调用
 * 
 * @author huqibo
 * @date 2025/03/17
 */
public interface IInnerService {
	/**
	 * 用户详情
	 * 
	 * @param appUid
	 * @return
	 */
	UserInfoResponse userInfo(Long appUid);

	/**
	 * @param appUid
	 * @return
	 */
	List<UserInfoResponse> userInfo(Collection<Long> appUid);

	/**
	 * @param payOrderId
	 * @param transactionOrderId
	 * @return
	 */
	Boolean mintAfterUpdateResult(Long payOrderId, Long transactionOrderId);

	/**
	 * 根据手机号获取用户信息
	 * 
	 * @param phone
	 * @return
	 */
	UserInfoResponse userInfoWithPhone(String phone);

	/**
	 * 支付单信息
	 * 
	 * @param payOrderId
	 * @return
	 */
	TblPayOrderDto fetchPayOrder(Long payOrderId);

	Boolean deliverCheck(Long entitlementId, Long uid);

	UserRegResponse register(UserRegRequest userRegRequest);

	Map<Long, BusinessOrderDto> getBusinessListByIds(Set<Long> refIds);

	AssetAuditResponse assetAuditInfo(Long assetAuditId);

	Boolean assetAuditPayMint(Long assetAuditId, Long assetId);

	Boolean installByPackageIds(String packageIds, Long assetId);

	BusinessOrderDto getBusinessOrderById(Long orderById);

	BusinessOrderResponse businessOrderInfoWithId(Long businessOrderId);

	Boolean handleOrderPaySuccess(TblPayOrderDto payOrderDto);

	Boolean sendFreeBenefitPackage(SendFreeBenefitPackageRequest request);

	Boolean sendAssetNoBenefit(SendAssetNoBenefitRequest request);

	Boolean blockAssetNoBenefit(BlockAssetNoBenefitRequest blockAssetNoBenefitRequest);

	Boolean unBlockAssetNoBenefit(UnBlockAssetNoBenefitRequest unBlockAssetNoBenefitRequest);

	Boolean judgeMerchantPer(String uid);

	Boolean sendAssistantMsg(AssistantMessageRequest batchMsg);

	Boolean saveDeliverResult(SendDeliverResultRequest request);

	Boolean saveCopyright(CopyrightRequest copyrightRequest);

}
